{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np \n",
    "import pandas as pd\n",
    "import os"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 176,
   "metadata": {},
   "outputs": [],
   "source": [
    "train = pd.read_csv(\"./data/train.csv\")\n",
    "train = pd.DataFrame(train)\n",
    "demo = train.get(\"class\")\n",
    "#demo.split()\n",
    "#print(train)\n",
    "train_article = train.loc[:,['article','class']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 200,
   "metadata": {},
   "outputs": [],
   "source": [
    "high_word_list = pd.read_csv(\"./data/book/high_word_list.csv\",names=[\"words\"])\n",
    "middle_word_list = pd.read_csv(\"./data/book/middle_word_list.csv\",names=[\"words\"])\n",
    "dic_freq = Counter(high_word_list[\"words\"])\n",
    "\n",
    "dic_word = tuple2word(dic_freq.most_common())\n",
    "dic_word_20 = tuple2word(dic_freq.most_common(20))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 201,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "4112 2896\n"
     ]
    }
   ],
   "source": [
    "from collections import Counter\n",
    "def tuple2word(dic_most):\n",
    "    tmp = []\n",
    "    for i in dic_most:\n",
    "        tmp.append(i[0])\n",
    "    return tmp\n",
    "#生成词频统计\n",
    "def prepare_word(all_dic):\n",
    "    dic = []\n",
    "    dic_freq_10 = set(tuple2word(Counter(all_dic).most_common(10)))\n",
    "    specil_word = {'and','the','with','in','by','its','for','of','an','to','adj','n','pron','adv','conj','vt','vi','prep'}\n",
    "    specil_word.update(dic_freq_10)\n",
    "    #print(specil_word)\n",
    "    for word in set(all_dic):\n",
    "        if word not in specil_word:\n",
    "            dic.append(word)\n",
    "        else:\n",
    "            continue\n",
    "    return dic\n",
    "\n",
    "dic_h = prepare_word(high_word_list[\"words\"])\n",
    "dic_m = prepare_word(middle_word_list[\"words\"])\n",
    "print(len(dic_h),len(dic_m))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 254,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2709 2896\n"
     ]
    }
   ],
   "source": [
    "for word in dic_m:\n",
    "    if word in dic_h:\n",
    "        dic_h.remove(word)\n",
    "print(len(dic_h),len(dic_m))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 255,
   "metadata": {},
   "outputs": [],
   "source": [
    "#five_dic_1\n",
    "def mh_ratio(demo):\n",
    "    txt = demo.split()\n",
    "    new_dic_0 = []\n",
    "    new_dic_1 = []\n",
    "    for w in set(txt):\n",
    "        if w in dic_h:\n",
    "            new_dic_0.append(w)\n",
    "        if w in dic_m:\n",
    "            new_dic_1.append(w)\n",
    "    #print(len(new_dic_0)/(len(new_dic_0)+len(new_dic_1)))\n",
    "    return len(new_dic_0)/(len(new_dic_0)+len(new_dic_1))#大于0.5属于初中 小于0.5属于高中"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 256,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "index: 0\n",
      "index: 1000\n",
      "index: 2000\n",
      "index: 3000\n",
      "index: 4000\n",
      "index: 5000\n",
      "index: 6000\n",
      "index: 7000\n",
      "index: 8000\n",
      "index: 9000\n",
      "index: 10000\n",
      "index: 11000\n",
      "index: 12000\n",
      "index: 13000\n",
      "index: 14000\n",
      "index: 15000\n",
      "index: 16000\n",
      "index: 17000\n",
      "index: 18000\n",
      "index: 19000\n",
      "index: 20000\n",
      "index: 21000\n",
      "index: 22000\n",
      "index: 23000\n"
     ]
    },
    {
     "ename": "ZeroDivisionError",
     "evalue": "division by zero",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mZeroDivisionError\u001b[0m                         Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-256-d5d61cb094f2>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      2\u001b[0m \u001b[0mm_f\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      3\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mindex\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mrow\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mtrain_article\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0miterrows\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 4\u001b[1;33m     \u001b[0marticle_score\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmh_ratio\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mrow\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"article\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      5\u001b[0m     \u001b[1;32mif\u001b[0m \u001b[0mindex\u001b[0m \u001b[1;33m%\u001b[0m\u001b[1;36m1000\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      6\u001b[0m         \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"index:\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mindex\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m<ipython-input-255-a988f5585ab2>\u001b[0m in \u001b[0;36mmh_ratio\u001b[1;34m(demo)\u001b[0m\n\u001b[0;32m     10\u001b[0m             \u001b[0mnew_dic_1\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mw\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     11\u001b[0m     \u001b[1;31m#print(len(new_dic_0)/(len(new_dic_0)+len(new_dic_1)))\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 12\u001b[1;33m     \u001b[1;32mreturn\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnew_dic_0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnew_dic_0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m+\u001b[0m\u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnew_dic_1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;31m#大于0.5属于初中 小于0.5属于高中\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;31mZeroDivisionError\u001b[0m: division by zero"
     ]
    }
   ],
   "source": [
    "h_f = []\n",
    "m_f = []\n",
    "for index, row in train_article.iterrows():\n",
    "    article_score = mh_ratio(row.get(\"article\"))\n",
    "    if index %1000 == 0:\n",
    "        print(\"index:\",index)\n",
    "    if row.get(\"class\") == \"high\":\n",
    "        h_f.append(article_score)\n",
    "    if row.get(\"class\") == \"middle\":\n",
    "        m_f.append(article_score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 252,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.07142857142857142 0.5 0.2803147848937072 5236 0.2803147848937076 0.04979700984088811\n",
      "0.0 0.5454545454545454 0.33493985326515613 18728 0.33493985326515774 0.04572815474382353\n"
     ]
    }
   ],
   "source": [
    "print(min(m_f),max(m_f),sum(m_f)/len(m_f),len(m_f),np.mean(m_f),np.std(m_f))\n",
    "a = np.mean(m_f)\n",
    "b = np.std(m_f)\n",
    "m_f_s = []\n",
    "for i in m_f:\n",
    "    m_f_s.append((i- a)/b)\n",
    "print(min(h_f),max(h_f),sum(h_f)/len(h_f),len(h_f),np.mean(h_f),np.std(h_f))\n",
    "a = np.mean(h_f)\n",
    "b = np.std(h_f)\n",
    "h_f_s = []\n",
    "for i in h_f:\n",
    "    h_f_s.append((i- a)/b)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 253,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x20dbbc6c130>]"
      ]
     },
     "execution_count": 253,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(h_f_s)\n",
    "plt.plot(m_f_s)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "py_torch",
   "language": "python",
   "name": "py_torch"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
